package com.zhentao.study03;

public class Study {
  public static void main(String[] args) {

    // 2.位运算符
    // 位运算符是直接操作的二进制代码, 是直接操作的机器码, 运行速度是没有任何缺失的, 是最快的。
    // 是一些对计算结果和速度都有严格要求的情况下, 才会使用。
    int a = 10 ;
    int b = 3 ;

    int c = a & b ; // 1010 & 0011 = 0010 两个数的二进制位数都是1的时候，结果才是1。
    System.out.println("c = " + c);

    int d = a | b ; // 1010 | 0011 = 1011 两个数的二进制位数都是0的时候，结果才是0。
    System.out.println("d = " + d);

    int e = 0x00000101; // 0000 0101   1111 1010
    System.out.println("e = " + e);
    int f = ~e ;
    System.out.println("e = " + (f));


    int g = 18 ;
    int h = 10 ;
    System.out.println("18^10 = " + (18 ^ 10));

    int i = 2 ;

    int i1 = i<<2; // 00001000
    System.out.println("i1 = " + i1);

    int i2 = i1>>2 ; // 00000010
    System.out.println("i2 = " + i2);



    // int e = a ^ b ; // 1010 ^ 0011 = 1001 两个数的二进制位数都是1的


    // 1. 三目运算符
    /* int a = 2;
    int b = 3 ;
    // 表达式 ? true 执行的代码  : false 执行的代码 ;
    // int c = a > b ? 7 : 13 ;
    String s = a > b ? "a > b " : " a < b ";
    if( a>b ){
      s = "a > b ";
    }

    System.out.println(s);*/ // 无法执行的代码
    // return ; // 方法内是返回数据。 不需要返回数据的情况, 是终止程序。 return 应该是在函数(方法)的最后一行。

  }
}
